package com.quan.mall.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;


import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull;
import com.quan.commons.core.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 订单-退货申请
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2021-03-26 13:03:26
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("oms_order_return_apply")
public class OmsOrderReturnApply extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * ID
	 */
    @TableId
    private Long id;

	/**
	 * APPID
	 */
    private String appId;

	/**
	 * 商户号
	 */
    private String mchId;

	/**
	 * OPENID
	 */
    private String openId;

	/**
	 * 订单ID
	 */
    private Long orderId;

	/**
	 * 订单编号，作为微信商户订单号
	 */
    private String orderSn;

	/**
	 * 订单类型：0->普通订单（实物订单，非实物订单（非实物订单不享受任何折扣）），1->活动订单，2->拼团订单，3->秒杀订单，4->砍价订单，4->核销订单
	 */
    private Integer orderType;

	/**
	 * 订单创建时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime orderCtime;

	/**
	 * 订单支付时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime orderPayTime;

	/**
	 * 会员ID
	 */
    private Long memberId;

	/**
	 * 会员名称
	 */
    private String memberUsername;

	/**
	 * 会员手机号
	 */
    private String memberPhone;

	/**
	 * 会员寄回，添加快递单号
	 */
    private String expressNum;

	/**
	 * 售后单号
	 */
    private String postSaleSn;

	/**
	 * 退款方式：1->仅退款，2->仅退货，3->退货退款
	 */
    private Integer returnType;

	/**
	 * 退款金额
	 */
    private BigDecimal returnAmount;

	/**
	 * 退款原因
	 */
    private String returnReason;

	/**
	 * 退款描述
	 */
    private String returnDescription;

	/**
	 * 凭证图片，以逗号隔开
	 */
    private String returnDescPics;

	/**
	 * 申请状态：0->申请退款，1->商家拒绝，2->同意退款（待退货），3->商品待退货（会员提交快递信息），4->商家拒收货，5->商家确认收货，6->退款成功（待退款;修改订单状态：已关闭）
	 */
    private Integer status;

	/**
	 * 退货商品ID
	 */
    private Long goodsId;

	/**
	 * 退货商品SkuId
	 */
    private Long goodsSkuId;

	/**
	 * 退货商品图片
	 */
    private String goodsSkuImg;

	/**
	 * 退货商品名称
	 */
    private String goodsSkuName;

	/**
	 * 退货商品品牌
	 */
    private String goodsSkuBrand;

	/**
	 * 退货商品销售属性(JSON)
	 */
    private String goodsSkuAttrsVals;

	/**
	 * 退货退货数量
	 */
    private Integer goodsSkuCount;

	/**
	 * 退货商品单价
	 */
    private BigDecimal goodsSkuPrice;

	/**
	 * 退货商品实际支付单价
	 */
    private BigDecimal goodsSkuRealPrice;

	/**
	 * 收货人
	 */
    private String receiveMan;

	/**
	 * 收货时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime receiveTime;

	/**
	 * 收货备注
	 */
    private String receiveNote;

	/**
	 * 收货电话
	 */
    private String receivePhone;

	/**
	 * 收货地址
	 */
    private String receiveAddress;

	/**
	 * 申请时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime ctime;

	/**
	 * 更新时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime utime;


}
